package com.example.demo.mapper;
import java.util.*;
import com.example.demo.entity.Userinfo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @program: demo
 * @author: JCM
 * @create: 2023-02-28 21:35
 * @description:
 **/
@Mapper
public interface UserMapper {
    /**
     * 根据用户的 id 来查询用户信息
     * @param id
     * @return
     */
    Userinfo getUserById(@Param("id") Integer id);

    Userinfo getUserByName(@Param("username") String username);

    /**
     * 查询全部
     * @return
     */
    List<Userinfo> getAll();

    /**
     * 添加用户
     * @param userinfo
     */
    void add(Userinfo userinfo);

    /**
     * 添加用户并返回用户 id
     * @param userinfo
     */
    void addGetId(Userinfo userinfo);

    /**
     * 修改用户名操作
     * @param userinfo
     * @return  影响的行数
     */
    int updateUserName(Userinfo userinfo);

    /**
     * 根据用户 id 删除用户信息
     * @param id
     * @return
     */
    int delById(@Param("id") Integer id);

    // 升序/降序查询
    List<Userinfo> getListByOrder(@Param("order") String order);

    Userinfo login(@Param("username") String username,
                   @Param("password") String password);

    List<Userinfo> getListByName(@Param("username") String username);

    int add2(Userinfo userinfo);

    int add3(Userinfo userinfo);

    List<Userinfo> getListByParam(@Param("username") String username,
                                  @Param("password") String password);

    int update2(@Param("username") String username,
                @Param("password") String password,
                @Param("photo") String photo,
                @Param("id") Integer id
    );

    int dels(List<Integer> ids);
}
